# 计算机都是对二进制0,1进行位运算     & 与（and）  | 或（or） ！非（not）
# 左移位 << :高位溢出，低位补0，相当于乘2
# 右移位 >> :低位截断，高位补0，相当于除2
print(4&8)              #            00000100           00000100
print(4|8)              #            00001000           00001000
                        #对位相与与结果 00000000           00001100
                        #               0                  12
print(4<<1)     #向左移动一位(移动一个位置)相当于x2
print(4>>2)     #向右移动2位，相当于/4


# 运算符优先级 算数(** , * / % // , + - ) > 位(>> << & |)> 比较(> < >= <= == !=) > 布尔(and or ) > 赋值(=)